﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CLEXA.AdminClient.ViewModel;
using CLEXA.ClientTools.Collections;
using CLEXA.DataContracts;

namespace CLEXA.AdminClient
{
    internal interface IFacade
    {
        IReadOnlyObservableDictionary<int, UserData> Users { get; }

        void UserCreate(string username, string password, bool isActive);
        void UserUpdate(UserData user);
        void UserDelete(int userId);
        void UserChangePassword(int userId, string password);

        void ShowUserCreateDialog();
        void ShowUserEditDialog(int userId);
        void ShowUserChangePasswordDialog(int userId);
        void ShowErrorDialog(string message, Exception innerException);
        bool ShowYesOrNoDialog(string question);
        void CloseWindow(VMBase vm);
    }
}
